home *** CD-ROM | disk | FTP | other *** search
/ Amiga News 95 / Amiga News 95.iso / dpat / dpat05 / termii / documentation / scripts.doc < prev    next >
Encoding:
Text File  |  1992-07-21  |  6.2 KB  |  180 lines

  1. Le 21 Juin 1991
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                                     Term II
  12.  
  13.                                   version 1.1
  14.  
  15.                          (c) 1990,1991 - Eric GONTIER
  16.  
  17.                                   SCRIPTS.doc
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.         INTRODUCTION :
  30.  
  31.             Toutes  les   commandes   décrite   dans   COMMANDES.doc   sont
  32.             utilisables depuis  ARexx et permettent déjà des  scripts  pour
  33.             faire  des  automates   de   connection.  C'est  assez  facile.
  34.             Depuis   un programme Rexx on fixe le port à utiliser (address
  35.             TERM),  puis on  envoie  les commandes normalement. Voici  un
  36.             exemple  :
  37.  
  38.  
  39.                     /* Exemple, émission automatique d'un fichier */
  40.                     /* en Xmodem 1K CRC                           */
  41.  
  42.                     address TERM
  43.  
  44.                     xpr_open '"xprxmodem.library"'
  45.                     xpr_init '"A0,C1,K1"'
  46.                     xpr_send '"dh0:mon_dir/mon_fichier"'
  47.  
  48.  
  49.             Le mécanisme des scripts est facilité  par  quelques  commandes
  50.             spéciales  :  rexx_memory_on,  rexx_memory_off,  rexx_delay
  51.             rexx_wait et rexx
  52.  
  53.                     rexx_wait timeout1 timeout2
  54.  
  55.             Cette commande met  Term  en  attente  de  caractères  avec  un
  56.             timeout (timeout1). Si Term ne reçoit rien,  ARexx  reprend  la
  57.             main. Si Term reçoit des caractères , ARexx ne reprend la  main
  58.             que si timeout2 s'écouler après réception du dernier caractère.
  59.             Ceci est très  intéressant,  par  exemple  dans  le  cas  d'une
  60.             numérotation automatique. Ca peut prendre du  temps,  mais  des
  61.             que la ligne est prise, il faut que ARexx reprenne la main. Par
  62.             exemple :
  63.  
  64.                     serial_send '"ATDT3600\n"'  /* connection transpac */
  65.  
  66.                             /* On admet 30s sans rien recevoir         */
  67.                             /* Si on reçoit, Term rend la main après   */
  68.                             /* 2s sans rien recevoir                   */
  69.                     rexx_wait 30 2
  70.  
  71.             Ca permet de prendre le temps d'attendre,  tout  en  réagissant
  72.             rapidement dès qu'on a reçu quelque chose.
  73.  
  74.             Il faut un moyen au script de Rexx de  récupérer ce qui Term II
  75.             a reçu. Le principe  de  "memory".  La  commande rexx_memory_on
  76.             indique à Term de mettre en route le principe de "memory" : les
  77.             80 derniers caractères reçus sont  mémorisés  en permanence, et
  78.             accessible dans le script rexx dans la  variable memory. Cette
  79.             variable est créée ou mise à jour automatiquement après
  80.             l'exécution des commandes rexx_delay ou rexx_wait.
  81.  
  82.             Quand à la commande rexx, elle permet de démarrer un script
  83.             ARexx directement depuis Term II (à condition que le rexx
  84.             server soit déjà en place en tâche de fond). Exemple :
  85.  
  86.                     rexx "quit.rexx"
  87.  
  88.             exécute le script quit.rexx qui est dans le répertoire courant.
  89.  
  90.             Les  puissantes  possibilités  de  traitement  des  chaines  de
  91.             caractères par le langage Rexx, ou les possibilités de parsing,
  92.             donnent un  moyen  facile  et  puissant  d'écrire  des scripts.
  93.  
  94.             Exemple :
  95.  
  96.                      rexx_memory_on
  97.                      serial_send '"ATDT3600\n"'
  98.                      rexx_wait 30 2
  99.  
  100.                             /* ici, la variable memory contient         */
  101.                             /* les 80 derniers caractères reçus         */
  102.  
  103.                      analyse de term.memory pour voir un des messages suivants :
  104.  
  105.                      si CONNECTED1200
  106.                             alors, on est connecté
  107.                             on poursuit le script
  108.  
  109.                      si BUSY
  110.                             c'était occupé. On attend 10s et on recommence
  111.  
  112.                      si NO CARRIER
  113.                             C'est un faux numéro, ou le serveur est en panne !!
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.         LES EXEMPLES :
  121.  
  122.             Il y a déjà quelques scripts  d'exemple  pour  montrer  comment
  123.             s'utiliser les différentes commandes. Ces scripts peuvent  être
  124.             invoqués depuis le CLI (dans ce cas, Term II doit être déjà  en
  125.             fonctionnement, comme  tâche  de  fond  par  exemple)  avec  la
  126.             commande rx. Par exemple :
  127.  
  128.                 rx test_delay
  129.  
  130.             Ils peuvent aussi être démarrer  directement  depuis  Term  II.
  131.             Voir pour celà le paragraphe suivant.
  132.  
  133.             Il y a pour l'instant trois scripts d'exemple :
  134.  
  135.                 test_delay.rexx
  136.                     ce script permet de tester la fonction  rexx_delay,  et
  137.                     le mécanisme de memory
  138.  
  139.                 test_wait.rexx
  140.                     ce  script  permet  de  tester  la  fonction  rexx_wait
  141.  
  142.                 download.rexx
  143.                     ce mécanisme  permet  un  download  automatique  depuis
  144.                     Calva. L'utilisateur devra mettre  son  mot-de-passe  à
  145.                     l'intérieur  du  script   pour   que   l'accès   puisse
  146.                     réellement se faire. Les remarques en tête du programme
  147.                     donneront à  l'utilisateur  les  consignes  nécessaires
  148.                     pour tester ce script
  149.  
  150.             Des scripts beaucoup plus sophistiqués peuvent être  développés,
  151.             en tirant parti du  mécanisme  de  memory  pour  vérifier   les
  152.             réponses reçues et agir en conséquence.
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.         DEMARRER UN SCRIPT DEPUIS TERM :
  162.  
  163.             Enfin, il est possible de démarrer un programme  Rexx  _depuis_
  164.             Term II, ce qui permet d'ajouter autant de commandes  qu'on  le
  165.             veut, tout simplement en bricolant des petits scripts en  Rexx.
  166.             Le démarrage d'un de  ces  scripts  se  fait  à  partir  de  la
  167.             commande "rexx". On peut faire  des  essais  avec  les  scripts
  168.             d'exemple :
  169.  
  170.                 - depuis Term, faire <Amiga-Gauche><M> pour accéder au requester de
  171.                 commandes
  172.                 - essayer les commandes suivantes :
  173.  
  174.                 rexx "download.rexx amiga/amiga/fontes/genfont.lzh ram:test"
  175.  
  176.                 ou :
  177.  
  178.                 rexx "test_delay.rexx"
  179.  
  180.